|
Public Types |
| enum | ABTSplitMethod {
Split_NoMethod,
Split_SuccessiveApprox,
Split_AllVerts,
Split_MultiSample,
Split_Statistical,
Split_Count,
Split_Force32Bit = 0x7fffffff
} |
Public Member Functions |
| | dePolyABT () |
| | ~dePolyABT () |
| deBoolean | SetCurrentSurface (IdeSurface *CurrSurface) |
| | surface state machine setting
|
| deBoolean | AddVertices (ABTVertex *VertexArray, long NumVerts, long &BaseVertexIndex, const deTransformInfo &worldpos) |
| | add vertices that will be indexed by faces
|
| deBoolean | AddTriangleIndices (long *IndexArray, long BaseVertexIndex, long NumIndices) |
| | add indices for faces, offset by a value obtained from AddVertices
|
| deBoolean | AddSceneObject (IdeSceneObject *pObject) |
| | handles an entire sceneobject without decomposing it into geometry
|
| deBoolean | AddIndexedVBuffer (IdeVertexBuffer *VBuffer, long &BaseVertexIndex, const deTransformInfo &worldpos) |
| | add raw geometry from a vertex buffer - can be just vertices, just indices, or both
|
| deBoolean | AddMeshGeometry (IdeMesh *pMesh, const deTransformInfo &worldpos) |
| | add the geometry from an IdeMesh object
|
| deBoolean | SetMaxLeafTris (long MaxTris) |
| | set the threshold for maximum triangles in a leaf node. defaults to 50.
|
| deBoolean | SetMaxVBufferTris (long MaxTris) |
| | set the threshold for maximum triangles in a renderable vertex buffer. defaults to 2000.
|
| deBoolean | SetSplitWeights (deFloat Axis, deFloat Volume, deFloat FaceBalance, deFloat NumSplit) |
| deBoolean | CompileABT () |
| | compile the entire ABT geometry into renderable VBs and leaf nodes
|
| deBoolean | RenderVisibleGeometry (IdeSceneGraph::deSceneTraversal *Params) |
| | render the currently visible geometry, according to the input Params.
|
| void | GetVisibleAABB (deAABB &bbox) |
| | get the AABB extents of the ABT
|
| deBoolean | Serialize (IdeFile *File) |
| deBoolean | DeSerialize (IdeFile *File, u32 DataLength, u32 &AmtRead) |
| deBoolean | DeSerializeLoad () |
Private Member Functions |
| void | DestroyABT () |
| ABTPartition * | CreateABTPartition (ABTPartition *Parent, int ChildNum) |
| deBoolean | DestroyABTPartition (ABTPartition *&pPart) |
| deBoolean | ShrinkPartitionBBoxes (ABTPartition *Parent) |
| deBoolean | ProcessABTPartition (ABTPartition *pPart) |
| void | PickBestSplit (const ABTPartition *pPart, ABTSplitStat &best, ABTSplitMethod method) const |
| deBoolean | ScorePartitionSplit (const ABTPartition *pPart, ABTSplitStat *pStat, deFloat AxisScores[3]) const |
| deBoolean | InterpolateCutEdge (ABTVertex *NewVert, long Index1, long Index2, dePlane &SplitPlane) |
| deBoolean | BuildPartitionVBuffer (ABTPartition *pPart) |
| deBoolean | RenderVisibleABTPartitions (IdeSceneGraph::deSceneTraversal *Params, ABTPartition *CurrentPart, deBoolean AllVisible) |
| deBoolean | RenderABTPartition (IdeSceneGraph::deSceneTraversal *Params, ABTPartition *pPart) |
| ABTPartition * | DecomposeFilePartition (const deTArray< ABTFilePartition_01 > &fileparts, u32 currentIdx, ABTPartition *parent, const deTArray< u32 > objectIndices, const deTArray< ABTFace > faces) |
Static Private Member Functions |
| u32 | AppendFilePartition (deTArray< ABTFilePartition_01 > &fileparts, const ABTPartition *current, u32 parentIdx, u32 &TotalFaces, u32 &TotalObjects) |
Private Attributes |
| deTArray< ABTVertex > | m_Vertices |
| deTArray< ABTFace > | m_AllFaces |
| deTArray< IdeSurface * > | m_Surfaces |
| deTArray< IdeSceneObject * > | m_SceneObjects |
| deAABB | m_TotalBBox |
| deVec3d | m_WorldOffset |
| ABTPartition * | m_RootPartition |
| u32 | m_CurrSurfaceIndex |
| u32 | m_OriginalVertNum |
| u32 | m_MaxLeafTris |
| u32 | m_MaxVBTris |
| deFloat | m_SplitWeights [4] |
| deTArray< deIDPair > | m_SerialSurfaces |
| deTArray< deIDPair > | m_SerialObjects |